1. Field of the Invention
The present invention relates to a distributed peripheral device control system and method.
2. Description of the Related Art
A device having the capability to print a document typically requires access to the following information and software: (a) the document data; (b) application software capable of loading and processing the document, together with other data, such as fonts, required to render the document; (c) operating system graphical and printing software, used by the application software to produce output in a displayable form; and (d) device drivers, which are the software modules used by a printing system to produce output suitable to a given type (make and model) of printer; each type of printer may require a different device driver.
These programs and data generally consume large amounts of computer memory and disk space, and preparing the document for printing can require a considerable amount of processing.
A typical mobile information device, such as a Personal Digital Assistant (PDA) or mobile phone, is much more limited in resources and processing speed than a desktop machine, and therefore not capable of locally supporting fully functional printing of most document types. Furthermore, with increased availability of wireless connection technologies, such as IrDA, Bluetooth and wireless LANs, the user of a mobile device potentially has access to a wider range of printers, on an ad-hoc basis.
Hand-held PDAs typically have cut-down document processing and printing capabilities, with limited document-viewer applications and system software using generic, “lowest common denominator” printer drivers. Smaller devices, such as mobile phones, normally have no printing or document processing ability at all.
FIG. 1 of the accompanying drawings shows a typical arrangement for printing from a personal computer (PC) 2 to a locally-connected printer 12. The following description of a typical printing process using the apparatus shown in FIG. 1 is based on the Microsoft® Windows® operating system.
The application program 4 issues graphical commands known as Graphical Device Interface (GDI) commands to the operating system. When sufficient GDI commands have been received by the operating system 6 to render a complete page, the data is converted into Device Driver Interface (DDI) commands that are sent to the device driver 8. The device driver 8 converts these DDI commands into raw device commands (printer commands). The raw device commands (printer commands) are returned to the operating system 6, which sends the data through the printer port 10 to the printer 12 for printing.
With this arrangement, all the software required for printing is located on the PC 2. Before printing can take place, the system must be set up by installing the device driver 8 for the particular printer 12 attached to the PC 2 and configuring the printer port 10 to which the printer 12 is connected.
FIG. 2 of the accompanying drawings shows an arrangement for printing from a PC 2 on a network to a printer 12 connected to a server 14 on the network. The arrangement enables the PC 2 to print to any one of a number of printers connected to servers on the network. U.S. Pat. No. 5,699,495, entitled “Point-and-print in a distributed environment”, describes a system using this arrangement.
The arrangement of FIG. 2 differs in two key respects from that described with reference to FIG. 1. Firstly, the device driver 8 is initially stored on the server 14 and is transferred over the network by the operating system 16 of the server 14 only when required by the client (i.e. the PC 2). Secondly, the raw device commands (printer commands) output by the device driver 8 are transferred over the network to the server 14, which sends the commands through the printer port 10 to which the printer 12 is connected.
U.S. Pat. No. 6,201,611, entitled “Providing local printing on a thin client”, describes a system for printing to a locally-connected printer, but using resources located on a server to provide much of the processing. Application software running on the client issues graphical commands to the client operating system. Rather than calling a local device driver to produce raw print data, the commands are converted to a device-independent print file. The device-independent data are then sent over the network to the server, which converts the device-independent data to device-dependent data, using device drivers located on the server. The device-dependent data are then transferred from the server to the printer via the client. Local spooling of print data on the client is avoided by controlling the flow of device-dependent data from server to client. The printer may be connected to a client other than that to which the application is running. No method of ad-hoc printer configuration is described in U.S. Pat. No. 6,201,611. It is assumed that the server (or another server on the network) has been configured with the driver for the given printer.
US-A-2002/0018234, entitled “Printer driver system for remote printing”, describes a system in which print jobs are processed on a server, using a “universal” printer driver installed on the server, to produce a universal print file, which is a generic type of file that can be sent directly to the printer.
EP-A-1291786, GB-A-2365599, WO 01/042894, WO 02/041107 and JP-2003-114773 can each be considered to disclose a distributed peripheral device control method for controlling the interaction between an information device and a peripheral device in communication with the information device, comprising requesting the peripheral device to perform a specified task, sending device identification information identifying the peripheral device to a server in communication with the information device, the server having access to at least one peripheral device driver, selecting a device driver corresponding to the peripheral device in dependence upon on the device identification information, employing the server to perform, on behalf of the information device and using the selected device driver, peripheral device-dependent processing operations relating to the performance of the task to produce device-dependent data.
US 2002/0196478 discloses a system comprising a mobile computing device, a scanner or multi-function printer and a server. The scanner scans a paper document into an electronic document which is sent to the server. No device-dependent processing is required by the server, which acts as a temporary store before the electronic document is retrieved by the mobile computing device. The mobile computing device does not act as a gateway between the scanner and the server.